import jWeixin from 'jweixin-module'

import userApi from '@/api/userApi.js'

export default {
	/* 判断是否在微信中 */
	isWechat() {
		var ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			return true;
		} else {
			//以下是我项目中所需要的操作其他，可以自定义
			uni.showModal({
				title: '提示',
				content: '请在微信浏览器中打开',
				showCancel: false,
				confirmColor: '#00875a',
				success: function(res) {
					if (res.confirm) {} else if (res.cancel) {}
				}
			});
			return false;
		}
	},
	/* 获取sdk初始化配置 */
	initJssdk() {
		return new Promise((resolve, reject) => {
			var url = window.location.href.split('#')[0]
			userApi.GetSign({
				url: url
			}).then(res => {
				const {
					appId,
					timestamp,
					nonceStr,
					signature
				} = res.data;
				jWeixin.config({
					debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
					// beta: true, // 文档没有这个参数，这个参数需设为true，才能调用那些微信还没有正式开放的新接口比如wx.invoke
					appId: appId, // 必填，公众号的唯一标识
					timestamp: timestamp, // 必填，生成签名的时间戳
					nonceStr: nonceStr, // 必填，生成签名的随机串
					signature: signature, // 必填，签名
					jsApiList: [ // 必填，需要使用的JS接口列表
						'startRecord', //开始录音接口
						'stopRecord', //停止录音接口
						'onVoiceRecordEnd', // 	录音时间超过一分钟没有停止的时候会执行 complete 回调
						'playVoice', //播放语音接口
						'pauseVoice', // 暂停播放接口
						'stopVoice', // 停止播放接口
						'uploadVoice', // 上传语音接口，返回一个临时serverId，用于后续上传到自己的服务器上
						'downloadVoice', // 下载语音接口，返回一个临时serverId，用于后续上传到自己的服务器上
					]
				})
			})
			resolve()
		})
	},
	//开始录音
	startRecord() {
		if (!this.isWechat()) {
			return;
		}
		jWeixin.ready(function() {
			jWeixin.startRecord({
				success: (res) => {},
				fail: (err) => {}
			});
		});
	},
	//结束录音
	stopRecord() {
		if (!this.isWechat()) {
			return;
		}
		return new Promise((resolve, reject) => {
			jWeixin.ready(() => {
				jWeixin.stopRecord({
					success: (res) => {
						var localId = res.localId;
						// resolve(localId)
						// console.log(this.uploadRecord(localId));
						this.uploadRecord(localId).then((serverId) => {
							resolve(serverId)
						})
						return
					}
				});
			});
		})
	},
	uploadRecord(localId) {
		return new Promise((resolve, reject) => {
			jWeixin.ready(function() {
				jWeixin.uploadVoice({
					localId, // 需要上传的音频的本地ID，由stopRecord接口获得
					isShowProgressTips: 1, // 默认为1，显示进度提示
					success: (res) => {
						console.log(res,'lllllllllllllll');
						// var serverId = res.serverId; // 返回音频的服务器端ID
						resolve(res.serverId)
					}
				}); 
			});
		})
	},
	downloadVoice() {
		jWeixin.ready(function() {
			jWeixin.downloadVoice({
				serverId: '', // 需要下载的音频的服务器端ID，由uploadVoice接口获得
				isShowProgressTips: 1, // 默认为1，显示进度提示
				success: function(res) {
					var localId = res.localId; // 返回音频的本地ID
				}
			})
			// jWeixin.uploadVoice({
			// 	localId, // 需要上传的音频的本地ID，由stopRecord接口获得
			// 	isShowProgressTips: 1, // 默认为1，显示进度提示
			// 	success: (res) => {
			// 		// var serverId = res.serverId; // 返回音频的服务器端ID
			// 		resolve(res.serverId)
			// 	}
			// });
		});
	},
	playVoice(localId) {
		jWeixin.ready(function() {
			jWeixin.playVoice({
				localId, // 需要播放的音频的本地ID，由stopRecord接口获得
				success: (res) => {
					console.log(res, 'successsuccesssuccess');
				}, // 接口调用成功的回调函数
				fail: (err) => {
					console.log(err, 'errerrerrerr');
				}, // 接口调用失败的回调函数
			})
		});
	}

}